import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedstate from 'vuex-persistedstate'

Vue.use(Vuex)

import user from '@/common/store/modules/user.js'
import init from '@/common/store/modules/init.js'
const store = new Vuex.Store({
	state: {
		//公共的变量
		token: '',
		ycToken: '' // 珺璟token
	},
	getters: {
		
	},
	mutations: {
		//相当于同步的操作
		setLogin(state, data) {
			state.token = data.token
		},
		//相当于同步的操作
		setYcLogin(state, data) {
			state.ycToken = data.ycToken
		},
	},
	actions: {
		//相当于异步的操作,不能直接改变state的值，只能通过触发mutations的方法才能改变
		// addCountAction(context, payload) {
		// 	context.commit('add', payload)
		// }
	},
	modules: {
		user,
		init
	},
	plugins: [
		createPersistedstate({
			key: 'local', // 存缓存数据的key名 
			storage: {
				getItem: (key) => uni.getStorageSync(key),
				setItem: (key, val) => uni.setStorageSync(key, val),
				removeItem: (key) => uni.removeStorageSync(key)
			},
			render(state) {
				// 要存储的数据：本项目采用es6扩展运算符的方式存储了state中所有的数据
				return { ...state };
			}
		})
	]
})

export default store